package io;

import java.io.*;
import java.util.Scanner;

/**
 * 简易记事本功能
 * 程序启动后要求用户输入文件名，然后对文件进行写操作。
 * 之后用户输入的每一行字符串都要按行写入到文件中
 * 当用户单独输入exit时程序退出
 *
 * 要求：创建PrinWriter并且自行创建流连接完成
 */
public class Note {
    public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
        Scanner s = new Scanner(System.in);
        System.out.println("请输入文件名");
        String file = s.nextLine();
        FileOutputStream fos = new FileOutputStream(file,true);//文件输出流,追加后下次输入不会清除原有数据
        OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8");//转换流
        BufferedWriter bw = new BufferedWriter(osw);//缓冲流，不满8k不输送，除非flush或close
        PrintWriter pw = new PrintWriter(bw,true);//加true相当于flush，也叫自动行刷新，每次输完一行自动刷新
        /*
        当创建PW时第一个参数为流，则可以再传入一个boolean型的参数，如果这个值为true，则当前PW具有自动行刷新功能
        即：每当我们调用println方法后会自动flush
         */
        while(true){
            String line = s.nextLine();
            if("exit".equals(line)){
                break;
            }
            pw.println(line);

        }
        System.out.println("写入完毕！");
        pw.close();
    }
}
